package ec.edu.ups.relevo.vista.controlador;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;

import ec.edu.ups.relevo.datos.dao.ContactoDAO;
import ec.edu.ups.relevo.datos.dao.MensajeDAO;
import ec.edu.ups.relevo.datos.dao.VideoDAO;
import ec.edu.ups.relevo.datos.modeloBD.*;

@ManagedBean
@ViewScoped
public class VideoBeanUsr 
{
	
	@Inject ContactoDAO contactoDAO;
	@Inject VideoDAO dao;
	@Inject MensajeDAO mdao;
	@Inject private Video vid=new Video();
	@ManagedProperty(value = "#{sesionBean.getUsr()}")  private Usuario usr;
	
	private Mensaje mensaje=new Mensaje();
	private List destinos;//contactos seleccionados para un mensaje

	public String guardar()
	{
		System.out.println("guardar");
		
		HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
		Object o=request.getSession().getValue("codigoVideo");
		String codigoArchivo ="";
		if(o!=null)codigoArchivo=o.toString(); 
			
		 
		
		
		if(codigoArchivo.trim().equalsIgnoreCase(""))
		{
			mostrarMensaje("Debe subir un video..", "Debe subir un video");
			return null;
		}
		
		request.getSession().putValue("codigoVideo","");

		
		
		List<MensajeContacto> mensajeContactoList=new ArrayList<MensajeContacto>();
		for(Object c:destinos) 
		{
			Contacto destinatario=contactoDAO.read(Long.valueOf(c.toString()));
			MensajeContacto mc=new MensajeContacto();
			mc.setContacto(destinatario);
			mc.setMensaje(mensaje);
			mensajeContactoList.add(mc);
		}
		
		mensaje.setMsj_contactos(mensajeContactoList);
		mensaje.setUsuario(usr);
		
		
		mdao.create(mensaje);
		
		
		
		vid.setRuta(codigoArchivo);
		vid.setMensajeId(mensaje.getId());
		dao.create(vid);
		
		System.out.println("Guardado...");
		vid=new Video();
		mensaje=new Mensaje();
		mostrarMensaje("Mensaje enviado..", "Mensaje enviado..");
		return null;
	}

	public Video getVid() {return vid;}
	public void setVid(Video vid) {this.vid = vid;}
	public Mensaje getMensaje() {return mensaje;}
	public void setMensaje(Mensaje mensaje) {this.mensaje = mensaje;}
	public List getDestinos() {	return destinos;}
	public void setDestinos(List destinos) {	this.destinos = destinos;	}
	public Usuario getUsr() {return usr;}
	public void setUsr(Usuario usr) {	this.usr = usr;	}
	
	private void mostrarMensaje(String titulo, String mensaje) {
		FacesContext context = FacesContext.getCurrentInstance();
		context.addMessage(null, new FacesMessage(titulo, mensaje));

	}

	
	
}
